(function () {
    // 获取评论区所有用户名
    // 评论比较少，没有分页~~ 所以一个query就搞定了
    // const users = [...document.querySelectorAll('.reply-list .user-name')]
    //     .map((el) => el.innerText)
    //     .filter((name => name !== '程序员D1'))
    // 设置奖品
    // 视频中有四种墨水屏时钟，随机抽取一种作为奖品
    const gifts = [
        '2.13',
        '2.66',
        '2.9',
        '4.2'
    ]

    async function sleep(ms) {
        return new Promise(resolve => {
            setTimeout(resolve, ms)
        })
    }

    const stop = 30000

    // 抽取行为：
    // 按照随机间隔遍历数组，当总时间到达指定时间后停止
    async function randomVisit(arr) {
        // 去重
        arr = [...new Set(arr)]
        let duration = 0
        for (let i = 0; i < arr.length; i++) {
            // 每次停留时间0.1-0.4s
            const rand = 100 + Math.round(Math.random() * 300)
            const current = arr[i]
            await sleep(rand)
            duration += rand
            if (duration >= stop) {
                console.log('result:', current)
                return current
            }
            console.log('------>', current, ' ', i)
            if (i === arr.length - 1) {
                i = -1
            }
        }
    }

    // async function fetchUsers() {
    //     // 地址需要修改，从network中的请求中直接复制。
    //     const url = 'https://api.bilibili.com/x/v2/reply/main?csrf=49e839cce988e818a011c0d1c1171aa6&mode=3&oid=486730748&pagination_str=%7B%22offset%22:%22%22%7D&plat=1&seek_rpid=&type=1'
    //     const res = await fetch(url)
    //     const jsonData = await res.json()
    //     // 不排除up主自己了~ 随机到自己的话重新执行一次
    //     return jsonData.data.replies.map((reply) => reply.member.uname)
    // }

    async function run() {
        console.log('开始设置奖品：')
        const gift = await randomVisit(gifts)
        console.log('----------> 奖品为：', gift)
        console.log('开始抽奖：')
        const users = [...document.querySelectorAll('#comment > div > div > div > div.reply-warp > div.reply-list div.user-info > div')].map(item => item.innerText) // 拉取用户
        console.log('用户列表：', users.join(';'))
        const user = await randomVisit(users)
        console.log('----------> 恭喜中奖用户', user, gift)
    }

    run()
    // 结束！！
})()